As software applications (apps) for mobile devices, such as smart phones, become increasingly popular for both personal and professional use, the popularity of “app stores” has likewise increased. Consumer apps for personal use, for example, can be easily obtained from app stores provided by, for example, Apple Computer (Apple App Store) for iPhones and Google (Google Play Store) for Android phones. The app stores are digital application distribution platforms that allow users to browse and download applications primarily for personal use. The applications can typically be downloaded directly to a target mobile device, or downloaded onto a personal computer.
Companies are unable to use such consumer app stores to distribute in-house apps, often referred to as enterprise apps, to their employees. Thus, enterprise app stores have begun to emerge. An enterprise app store can be implemented, for example, on an internal enterprise website where all of the apps that have been developed for employee use can be listed. The enterprise apps can then be downloaded by authorized employees to their mobile devices. Such enterprise app stores typically include a licensing component, a catalog of available apps, access controls and software usage reporting mechanisms.
Enterprise apps provide a mechanism for employees of the enterprise (and other authorized users) to easily access and interact with company information directly from their mobile devices. Enterprise apps typically provide employees with access to a wide range of Business Intelligence (BI) systems and enterprise data sources. Each enterprise app, however, is typically developed for a dedicated purpose and provides functionality and data access completely independent of other enterprise apps. Two enterprise apps that provide access to the same dataset are typically developed independently. Thus, there is often duplication in the development effort, as well as in the ongoing data processing. For example, a human resources app might determine the eligibility of an employee to purchase a new laptop, while an independent finance app might process the expenses associated with the purchase to generate an expense report.
A need therefore exists for an enterprise app development platform that provides a common framework to leverage and promote re-use of existing functionality. A further need exists for an enterprise app development platform that provides a common interface to enterprise data and services so that a plurality of enterprise apps can more efficiently access the same enterprise data and services.